package com.hs.srm.admin.modules.orders.entity;

import java.io.Serializable;

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import cn.afterturn.easypoi.excel.annotation.Excel;

import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.hs.srm.base.common.annotation.AddressMapping;
import com.hs.srm.base.common.annotation.DictMapping;
import com.hs.srm.base.common.utils.AddressDataUtil.AddressType;
import com.hs.srm.base.common.utils.DictDataUtil.DictType;

/*
 * 采购订单头表
 */
@Setter
@Getter
@TableName("scm_po_header")
@ToString
public class ScmPoHeaderEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    public ScmPoHeaderEntity() {
        super();
    }

    public static final int WEI_SHEN_PI = 0;// 未提交审批
    public static final int SHEN_PI_ZHONG = 1;// 审批中
    public static final int SHEN_PI_TONGGUO = 2;// 审批通过
    public static final int SHEN_PI_BOHUI = -2;// 审批驳回

    /*
     * 订单ID
     */
    @TableId(value = "po_id", type = IdType.UUID)
    @TableField("po_id")
    @Excel(name = "订单ID", orderNum = "1")
    private java.lang.String poId;

    /*
     * 采购凭证号
     */
    @TableField("po_no")
    @Excel(name = "采购凭证号", orderNum = "2")
    private java.lang.String poNo;

    /*
     * 订单类型
     */
    @TableField("po_type")
    @Excel(name = "订单类型", orderNum = "3")
    @DictMapping(type = DictType.CGDDLX)
    private java.lang.String poType;

    /*
     * 采购凭证类别
     */
    @TableField("po_category")
    @Excel(name = "采购凭证类别", orderNum = "4")
    private java.lang.String poCategory;

    /*
     * 记录的创建日期
     */
    @TableField("sap_ctime")
    @Excel(name = "记录的创建日期", orderNum = "5")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private java.util.Date sapCtime;

    /*
     * 创建对象的人员名称
     */
    @TableField("sap_cname")
    @Excel(name = "创建对象的人员名称", orderNum = "6")
    private java.lang.String sapCname;

    /*
     * 供应商
     */
    @TableField("vendor_id")
    @Excel(name = "供应商id", orderNum = "7")
    private java.lang.String vendorId;

    /*
     * 供应商名称
     */
    @TableField(exist = false)
    private java.lang.String vendorName;

    /*
     * 公司代码
     */
    @TableField("company_code")
    @Excel(name = "公司代码", orderNum = "8")
    @DictMapping(type = DictType.GC)
    private java.lang.String companyCode;

    /*
     * 采购组
     */
    @TableField("purch_group")
    @Excel(name = "采购组", orderNum = "9")
    @DictMapping(type = DictType.CGZ)
    private java.lang.String purchGroup;

    /*
     * 采购组织
     */
    @TableField("purch_org")
    @Excel(name = "采购组织", orderNum = "10")
    @DictMapping(type = DictType.CGZZ)
    private java.lang.String purchOrg;

    /*
     * 采购订单更改日期
     */
    @TableField("sap_utime")
    @Excel(name = "采购订单更改日期", orderNum = "11")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private java.util.Date sapUtime;

    /*
     * 付款条件代码
     */
    @TableField("pay_condition")
    @Excel(name = "付款条件代码", orderNum = "12")
    @DictMapping(type = DictType.FKTJ)
    private java.lang.String payCondition;

    /*
     * 国际贸易条款
     */
    @TableField("i18n_trade_terms")
    @Excel(name = "国际贸易条款 ", orderNum = "13")
    @DictMapping(type = DictType.GJMYTK)
    private java.lang.String i18nTradeTerms;

    /*
     * 货币码
     */
    @TableField("currency_code")
    @Excel(name = "货币码", orderNum = "14")
    @DictMapping(type = DictType.BZ)
    private java.lang.String currencyCode;

    /*
     * 公司名称
     */
    @TableField("company_name")
    @Excel(name = "公司名称", orderNum = "15")
    private java.lang.String companyName;

    /*
     * 街道
     */
    @TableField("street")
    @Excel(name = "街道", orderNum = "18")
    private java.lang.String street;

    /*
     * 门牌号
     */
    @TableField("house_no")
    @Excel(name = "门牌号", orderNum = "19")
    private java.lang.String houseNo;

    /*
     * 邮政编码
     */
    @TableField("post_code")
    @Excel(name = "邮政编码", orderNum = "20")
    private java.lang.String postCode;

    /*
     * 城市
     */
    @TableField("city")
    @Excel(name = "城市", orderNum = "21")
    @AddressMapping(type = AddressType.CITY)
    private java.lang.String city;

    /*
     * 国家
     */
    @TableField("country")
    @Excel(name = "国家", orderNum = "22")
    @AddressMapping(type = AddressType.COUNTRY)
    private java.lang.String country;

    /*
     * 电话
     */
    @TableField("tel_no")
    @Excel(name = "电话", orderNum = "23")
    private java.lang.String telNo;

    /*
     * 订单标志
     */
    @TableField("po_flag")
    @Excel(name = "订单标志(生产性/非生产性)", orderNum = "25")
    private java.lang.String poFlag;

    /*
     * 删除标志
     */
    @TableField("delete_flag")
    @Excel(name = "删除标志", orderNum = "26")
    @DictMapping(type = DictType.SCZT)
    private java.lang.String deleteFlag;

    /*
     * 审批流程状态
     */
    @TableField("appr_status")
    @Excel(name = "流程状态", orderNum = "28")
    @DictMapping(type = DictType.LCZT)
    private java.lang.Integer apprStatus;

    /*
     * 审批流程状态
     */
    @TableField("appr_no")
    @Excel(name = "更改批次号", orderNum = "29")
    private java.lang.String apprNo;

    /*
     * 创建人
     */
    @TableField("created_by")
    @Excel(name = "创建人", orderNum = "41")
    private java.lang.String createdBy;

    /*
     * 创建日期
     */
    @TableField("creation_date")
    @Excel(name = "创建日期", orderNum = "42")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private java.sql.Timestamp creationDate;

    /*
     * 修改人
     */
    @TableField("last_updated_by")
    @Excel(name = "修改人", orderNum = "43")
    private java.lang.String lastUpdatedBy;

    /*
     * 修改日期
     */
    @TableField("last_update_date")
    @Excel(name = "修改日期", orderNum = "44")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private java.sql.Timestamp lastUpdateDate;

    /*
     * 发票号版本
     *
     */
    @TableField("edition")
    @Excel(name = "发票号版本", orderNum = "45")
    private int edition;

    /*
     * 订单类型
     *
     */
    @TableField("order_type")
    @Excel(name = "订单类型", orderNum = "46")
    private int orderType;

    /*
     * 库存状态
     *
     */
    @TableField(exist = false)
    @Excel(name = "库存状态", orderNum = "47")
    private int status;

    /*
     * 临时供应商代码
     *
     */
    private String srmCode;
    /**
     * 收货时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField(exist = false)
    private java.util.Date createtime;
    /**
     * 申请试用单位主管
     */
    @TableField("section_supervisor")
    @Excel(name = "申请试用单位主管", orderNum = "5")
    private String sectionSupervisor;

}


